package handler

import (
    "fcs-api/src/app/model"
    "git.inspur.com/x/models"
)

func getGroupById(id string) interface{} {
    group := &model.Group{}
    if _, err := models.Engine.Table("fcs_group").ID(id).Get(group); err != nil {
        _ = logger.Error("getGroupById err: ", err)
        return nil
    }
    return group
}

func getFunctionById(id string) interface{} {
    funcInfo := new(model.FuncInfo)
    // 由于funcInfo结构体中的实际字段数量比数据库表要多，直接用结构体查询会有问题，所以为了兼容，这里把属性单独列出来
    has, err := models.Engine.Cols("id", "creator", "creator_name", "account_id", "account_name", "group_id", "group_name",
        "name", "runtime", "region_code", "region_name", "status", "max_version", "create_time", "update_time", "delete_time").
        Where("id=?", id).Get(funcInfo)
    if err != nil {
        _ = logger.Error("getFunctionById err: ", err)
        return nil
    }
    if !has {
        _ = logger.Error("getFunctionById err: can not find function ", id)
        return nil
    }
    // 冗余字段，为 iam 策略校验使用
    funcInfo.IdRepeat = funcInfo.Id
    return funcInfo
}

func getTriggerById(id string) interface{} {
    trigger := &model.Trigger{}
    if _, err := models.Engine.Table("fcs_trigger").ID(id).Get(trigger); err != nil {
        _ = logger.Error("getTriggerById err : ", err)
        return nil
    }
    return trigger
}
